A software provider is regularly required to provide updates or modifications to their software system. These updates may, for example, provide the software system with additional functionality requested by users, or the updates may correct errors contained in previous releases of the software. In an object oriented software system, there may be a requirement to deliver a complete function group or package, or to provide DDIC (data dictionary) objects.
This update process may be accomplished by means of update files, which can often simply be downloaded via a computer network. These update files will typically be compressions of the objects necessary for implementing the update, and each object may be a list of programs, tables, function modules, function groups or other elements. The user can simply download the update file and implement the update, usually with just a few mouse-clicks. This creates or modifies the relevant objects in the software system, without requiring the user to know or understand all of the details of the update.
However, this approach does pose some difficulties, as often a user does not implement all updates immediately, does not implement them in the order that they issue, or sometimes does not even implement certain updates at all. Unfortunately, in some cases, a new update will not function as intended unless a previous update has been implemented. This can lead to scenarios wherein an update that may have been intended to improve system performance actually causes more errors and lowers system performance.
The present invention aims to reduce or eliminate some or all of the disadvantages of prior software updating methods.